home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group95c.txt / 000048_icon-group-sender _Thu Oct 12 01:01:43 1995.msg < prev    next >
Internet Message Format  |  1996-01-03  |  3KB

  1. Received: by cheltenham.cs.arizona.edu; Thu, 12 Oct 1995 09:19:08 MST
  2. From: Nick Williams <nmw@styx.ios.com>
  3. Message-Id: <199510120501.BAA23678@styx.ios.com>
  4. Subject: Re: Strange loadfunc related bug in iconc
  5. To: gmt@cs.arizona.edu (Gregg Townsend)
  6. Date: Thu, 12 Oct 1995 01:01:43 -0400 (EDT)
  7. Cc: icon-group@cs.arizona.edu
  8. In-Reply-To: <9510120223.AA01683@hawk.CS.Arizona.EDU> from "Gregg Townsend" at Oct 11, 95 07:23:49 pm
  9. X-Mailer: ELM [version 2.4 PL23]
  10. Mime-Version: 1.0
  11. Content-Type: text/plain; charset=US-ASCII
  12. Content-Transfer-Encoding: 7bit
  13. Content-Length: 2459      
  14. Errors-To: icon-group-errors@cs.arizona.edu
  15.  
  16.  
  17. >    From: Nick Williams <nmw@styx.ios.com>
  18.     
  19. >    ...
  20. >    I had written up a small library of routines to interface to system
  21. >    calls and functions (such as fork, getuid, etc..). Now, as I tried to
  22. >    use them once again I have run into a problem: everything works fine
  23. >    when the Icon code is interpreted, but the return values of external
  24. >    functions are screwed up when the Icon code is compiled.
  25. >    ...
  26. >    Perhaps the bug is in the code that iconc generates, which I have
  27. >    serious trouble following (it wasn't meant to be read, was it? :)
  28. >    ...
  29.  
  30. >Not really.  And your speculation is probably right.  Try compiling with
  31. >"iconc -n t" and see if that fixes it.  If not, add "iconc -f s" and try
  32. >that.
  33.  
  34. This worked. Thanks. I will experiment a little further, at least I want
  35. to determine what exactly the return values are mangled into, I bet
  36. there's a pattern. More on this tomorrow (or the day after, or
  37. something).
  38.  
  39. >    PS: To get Icon to run under FreeBSD I had to perform two changes to the
  40. >        source code: a) change "RTLD_LAZY" in fload.r to 1 and b) include a
  41. >        copy of ecvt() in rmisc.r surrounded by ifdefs (BSD_4_4_LITE).
  42.  
  43. RTLD_LAZY should probably be a define somewhere; the name should
  44. probably be something else as well.
  45.  
  46. >Thanks for that info.  Can you tell us what would be a correct FreeBSD
  47. >entry for ipl/packs/loadfunc/mklib.sh?
  48.  
  49.       ld -Bshareable -o $LIBNAME "$@" -lc
  50.  
  51. There is going to be a problem parsing the output of uname -sr as it
  52. returns "FreeBSD 2.0.5-RELEASE" and this changes very often for FreeBSD :)
  53.  
  54. These are the defines I use (config/i486_freebsd/define.h):
  55.  
  56. #define Standard
  57. #define IconGcvt
  58. #define index strchr
  59. #define rindex strrchr
  60. #define GetHost
  61. #define Hz 100
  62. #define MaxHdr 13400
  63. #define MaxStatSize 20480
  64.  
  65. #define GenericBSD
  66. #define BSD_4_4_LITE    1    /* This is new, for 4.4Lite specific stuff */
  67. #define UNIX 1
  68. #define LoadFunc
  69. #define ExecImages
  70.  
  71. #define KeyboardFncs
  72. #define HaveTioc
  73. #define USE_OLD_TTY
  74. #define AllowConst
  75. #define SysOpt
  76. #define CComp "gcc"
  77. #define COpts "-O2"
  78.  
  79. I put the code for ecvt within an ifdef/endif using BSD_4_4_LITE,
  80. thinking that ecvt() is probably missing from the other 4.4Lite
  81. variants. I may be wrong.
  82.  
  83. The rswitch stuff I copied from the i486_linux config.
  84.  
  85. >    Gregg Townsend / Computer Science Dept / Univ of Arizona / Tucson, AZ 85721
  86. >    +1 520 621 4325     gmt@CS.Arizona.EDU     110 57 16 W / 32 13 45 N / +758m
  87. >
  88.  
  89. Thanks,
  90.  
  91. Nick
  92.